๊ธ๋ก๋ฒ ํ์ ์ํ ํ๋ ์ ์์ผ ์ํํธ์จ์ด ๊ฐ๋ฐ์ ํต์ฌ ์์์ธ ์ด์์๋ ๋ฌธ์์ ์์น๊ณผ ์ค์ ์ ์ฉ ์ฌ๋ก๋ฅผ ์ดํด๋ณด์ธ์.
์ด์์๋ ๋ฌธ์: ์ ์์ผ ํ์ ์ํ ์ข ํฉ ๊ฐ์ด๋
๋์์์ด ์งํํ๋ ์ํํธ์จ์ด ๊ฐ๋ฐ ํ๊ฒฝ์์ ๊ธฐ์กด์ ๋ฌธ์๋ ์ข ์ข ๋ค์ฒ์ ธ ์๋์ ๋ค๋จ์ด์ง๊ณ ๋ฌด๊ดํ๊ฒ ๋ฉ๋๋ค. ์ด๋ ์๋์ ์ ์์ฑ์ด ๊ฐ์ฅ ์ค์ํ ์ ์์ผ ํ๊ฒฝ์์ ํนํ ๊ทธ๋ ์ต๋๋ค. ์ด์์๋ ๋ฌธ์๋ ์ด์ ๋ํ ํด๊ฒฐ์ฑ ์ ์ ์ํฉ๋๋ค. ์ฆ, ์ํํธ์จ์ด ์์ฒด์ ํจ๊ป ๋ฐ์ ํ๋ ์ง์์ ์ผ๋ก ์ ๋ฐ์ดํธ๋๊ณ ํตํฉ๋ ํํ์ ๋ฌธ์์ ๋๋ค. ์ด ๊ฐ์ด๋์์๋ ๊ธ๋ก๋ฒ ํ์ ์ํ ์ด์์๋ ๋ฌธ์์ ์์น, ์ด์ ๋ฐ ์ค์ ๊ตฌํ ๋ฐฉ๋ฒ์ ์ดํด๋ด ๋๋ค.
์ด์์๋ ๋ฌธ์๋ ๋ฌด์์ธ๊ฐ?
์ด์์๋ ๋ฌธ์๋ ์ค๋ช ํ๋ ์ฝ๋๋ฒ ์ด์ค์ ๋๊ธฐํ๋์ด ์ ๊ทน์ ์ผ๋ก ์ ์ง ๊ด๋ฆฌ๋๋ ๋ฌธ์์ ๋๋ค. ์ด๋ ํ๋ก์ ํธ๊ฐ ๋๋ ๋ ์์ฑ๋๋ ์ ์ ์ธ ๊ฒฐ๊ณผ๋ฌผ์ด ์๋๋ผ ๊ฐ๋ฐ ํ๋ก์ธ์ค์ ํ์์ ์ธ ๋ถ๋ถ์ ๋๋ค. ์ํํธ์จ์ด์ ํ์ฌ ์ํ, ์๊ตฌ์ฌํญ ๋ฐ ์ํคํ ์ฒ๋ฅผ ๋ฐ์ํ๋ ์ง์์ ์ผ๋ก ์ ๋ฐ์ดํธ๋๋ ์ง์ ๊ธฐ๋ฐ์ด๋ผ๊ณ ์๊ฐํ ์ ์์ต๋๋ค.
์ฝ๊ฒ ๋ก์๋ฒ๋ฆด ์ ์๋ ๊ธฐ์กด ๋ฌธ์์ ๋ฌ๋ฆฌ, ์ด์์๋ ๋ฌธ์๋ ์ง์์ ์ผ๋ก ๊ฒ์ฆ๋๊ณ ์ ๋ฐ์ดํธ๋์ด ์ ํ์ฑ๊ณผ ๊ด๋ จ์ฑ์ ๋ณด์ฅํฉ๋๋ค. ์ด๋ ์ข ์ข ์ฝ๋๋ฒ ์ด์ค๋ ํ ์คํธ์์ ์๋์ผ๋ก ์์ฑ๋๋ฉฐ, ๋ชจ๋ ๊ฐ๋ฐํ ๊ตฌ์ฑ์๊ณผ ์ดํด๊ด๊ณ์๊ฐ ์ฝ๊ฒ ์ ๊ทผํ ์ ์์ต๋๋ค.
์ด์์๋ ๋ฌธ์๋ ์ ์ค์ํ๊ฐ?
์ค๋๋ ์ ๊ธ๋ก๋ฒํ๋๊ณ ๋ถ์ฐ๋ ํ์์๋ ํจ๊ณผ์ ์ธ ์ปค๋ฎค๋์ผ์ด์ ๊ณผ ์ง์ ๊ณต์ ๊ฐ ์ฑ๊ณต์ ํต์ฌ์ ๋๋ค. ์ด์์๋ ๋ฌธ์๋ ํ๋ ์ํํธ์จ์ด ๊ฐ๋ฐํ์ด ์ง๋ฉดํ ๋ช ๊ฐ์ง ์ฃผ์ ๊ณผ์ ๋ฅผ ํด๊ฒฐํฉ๋๋ค:
- ์ง์ ์ฌ์ผ๋ก ๊ฐ์: ์์น๋ ์ญํ ์ ๊ด๊ณ์์ด ๋ชจ๋ ์ฌ๋์ด ์ง์์ ์ ๊ทผํ ์ ์๊ฒ ํ์ฌ ํ์ ์ ์ด์งํ๊ณ ๊ฐ๋ณ ์ ๋ฌธ๊ฐ์ ๋ํ ์์กด๋๋ฅผ ์ค์ ๋๋ค.
- ํ์ ๊ฐ์ : ์์คํ ์ ๋ํ ๊ณต์ ๋ ์ดํด๋ฅผ ์ ๊ณตํ์ฌ ๊ฐ๋ฐ์, ํ ์คํฐ, ์ ํ ์ฑ ์์ ๋ฐ ์ดํด๊ด๊ณ์ ๊ฐ์ ์ปค๋ฎค๋์ผ์ด์ ๊ณผ ํ์ ์ ์ฉ์ดํ๊ฒ ํฉ๋๋ค.
- ์ํ ๊ฐ์: ๋ฌธ์๊ฐ ์์คํ ์ ํ์ฌ ์ํ๋ฅผ ์ ํํ๊ฒ ๋ฐ์ํ๋๋ก ๋ณด์ฅํ์ฌ ์คํด์ ์ค๋ฅ์ ์ํ์ ์ค์ ๋๋ค.
- ์จ๋ณด๋ฉ ๊ฐ์ํ: ์๋ก์ด ํ์์ด ์์คํ ๊ณผ ์ํคํ ์ฒ๋ฅผ ๋น ๋ฅด๊ฒ ์ดํดํ๋๋ก ๋์ ์์ฐ์ฑ์ ๋์ด๋ ๋ฐ ๊ฑธ๋ฆฌ๋ ์๊ฐ์ ๋จ์ถํฉ๋๋ค.
- ์ ์ง๋ณด์์ฑ ํฅ์: ๋ช ํํ๊ณ ์ต์ ๋ฌธ์๋ฅผ ์ ๊ณตํ์ฌ ์๊ฐ์ด ์ง๋จ์ ๋ฐ๋ผ ์์คํ ์ ์ ์งํ๊ณ ๋ฐ์ ์ํค๊ธฐ ์ฝ๊ฒ ๋ง๋ญ๋๋ค.
- ์ง์์ ํตํฉ ๋ฐ ์ง์์ ์ ๋ฌ(CI/CD) ์ง์: ๋ฌธ์๋ฅผ CI/CD ํ์ดํ๋ผ์ธ์ ํตํฉํ์ฌ ํญ์ ์ต์ ์ํ๋ฅผ ์ ์งํ๊ณ ์ฝ๊ฒ ์ฌ์ฉํ ์ ์๋๋ก ๋ณด์ฅํฉ๋๋ค.
- ๊ท์ ์ค์ ์ฉ์ด์ฑ: ์์คํ ์ ์๊ตฌ์ฌํญ ๋ฐ ๊ธฐ๋ฅ์ ๋ํ ๋ช ํํ๊ณ ๊ฐ์ฌ ๊ฐ๋ฅํ ๊ธฐ๋ก์ ์ ๊ณตํ์ฌ ๊ท์ ์ค์๋ฅผ ์ง์ํฉ๋๋ค.
์ด์์๋ ๋ฌธ์์ ์์น
์ฑ๊ณต์ ์ธ ์ด์์๋ ๋ฌธ์ ๊ตฌํ์ ๋ท๋ฐ์นจํ๋ ๋ช ๊ฐ์ง ์ฃผ์ ์์น์ด ์์ต๋๋ค:
- ์๋ํ: ์๋ ์์ ์ ์ค์ด๊ณ ์ผ๊ด์ฑ์ ๋ณด์ฅํ๊ธฐ ์ํด ๋ฌธ์ ์์ฑ ๋ฐ ์ ๋ฐ์ดํธ๋ฅผ ์ต๋ํ ์๋ํํฉ๋๋ค.
- ํตํฉ: ๋ฌธ์๋ฅผ ๊ฐ๋ฐ ์ํฌํ๋ก์ฐ์ ํตํฉํ์ฌ ๊ฐ๋ฐ ํ๋ก์ธ์ค์ ํ์์ ์ธ ๋ถ๋ถ์ผ๋ก ๋ง๋ญ๋๋ค.
- ํ์ : ๋ฌธ์์ ์ ํ์ฑ๊ณผ ๊ด๋ จ์ฑ์ ๋ณด์ฅํ๊ธฐ ์ํด ๋ฌธ์์ ๋ํ ํ์ ๊ณผ ํผ๋๋ฐฑ์ ์ฅ๋ คํฉ๋๋ค.
- ์ ๊ทผ์ฑ: ๋ชจ๋ ํ ๊ตฌ์ฑ์๊ณผ ์ดํด๊ด๊ณ์๊ฐ ๋ฌธ์์ ์ฝ๊ฒ ์ ๊ทผํ ์ ์๋๋ก ํฉ๋๋ค.
- ํ ์คํธ ๊ฐ๋ฅ์ฑ: ์์คํ ์ ๋์์ ์ ํํ๊ฒ ๋ฐ์ํ๋๋ก ๋ฌธ์๊ฐ ํ ์คํธ ๊ฐ๋ฅํ๋๋ก ์ค๊ณํฉ๋๋ค.
- ๋ฒ์ ๊ด๋ฆฌ: ๋ฌธ์๋ฅผ ์ฝ๋์ ํจ๊ป ๋ฒ์ ๊ด๋ฆฌ์ ์ ์ฅํ์ฌ ๋ณ๊ฒฝ ์ฌํญ์ ์ถ์ ํ๊ณ ์ด์ ๋ฒ์ ์ผ๋ก ๋๋๋ฆด ์ ์๋๋ก ํฉ๋๋ค.
- ๋จ์ผ ์ง์ค ๊ณต๊ธ์(Single Source of Truth): ๋ชจ๋ ๋ฌธ์์ ๋ํด ๋จ์ผ ์ง์ค ๊ณต๊ธ์์ ๊ฐ๋๋ก ๋ ธ๋ ฅํ์ฌ ๋ถ์ผ์น๋ฅผ ์ ๊ฑฐํ๊ณ ์ค๋ฅ์ ์ํ์ ์ค์ ๋๋ค.
์ด์์๋ ๋ฌธ์ ๊ตฌํ: ์ค์ฉ์ ์ธ ๋จ๊ณ
์ด์์๋ ๋ฌธ์๋ฅผ ๊ตฌํํ๋ ค๋ฉด ์ฌ๊ณ ๋ฐฉ์์ ์ ํ๊ณผ ๋ฌธ์๋ฅผ ๊ฐ๋ฐ ํ๋ก์ธ์ค์ ํตํฉํ๋ ค๋ ๋ ธ๋ ฅ์ด ํ์ํฉ๋๋ค. ๋ค์์ ์ทจํ ์ ์๋ ๋ช ๊ฐ์ง ์ค์ฉ์ ์ธ ๋จ๊ณ์ ๋๋ค:
1. ์ฌ๋ฐ๋ฅธ ๋๊ตฌ ์ ํ
๋ค์๊ณผ ๊ฐ์ ๋ค์ํ ๋๊ตฌ๊ฐ ์ด์์๋ ๋ฌธ์๋ฅผ ์ง์ํ ์ ์์ต๋๋ค:
- ๋ฌธ์ ์์ฑ๊ธฐ: Sphinx, JSDoc, Doxygen๊ณผ ๊ฐ์ ๋๊ตฌ๋ ์ฝ๋ ์ฃผ์์์ ๋ฌธ์๋ฅผ ์๋์ผ๋ก ์์ฑํ ์ ์์ต๋๋ค.
- API ๋ฌธ์ ๋๊ตฌ: Swagger/OpenAPI์ ๊ฐ์ ๋๊ตฌ๋ฅผ ์ฌ์ฉํ์ฌ API๋ฅผ ์ ์ํ๊ณ ๋ฌธ์ํํ ์ ์์ต๋๋ค.
- ํ๋ ์ฃผ๋ ๊ฐ๋ฐ(BDD) ๋๊ตฌ: Cucumber ๋ฐ SpecFlow์ ๊ฐ์ ๋๊ตฌ๋ฅผ ์ฌ์ฉํ์ฌ ์ด์์๋ ๋ฌธ์ ์ญํ ์ ํ๋ ์คํ ๊ฐ๋ฅํ ๋ช ์ธ๋ฅผ ์์ฑํ ์ ์์ต๋๋ค.
- ์ํค ์์คํ : Confluence ๋ฐ MediaWiki์ ๊ฐ์ ํ๋ซํผ์ ์ฌ์ฉํ์ฌ ๋ฌธ์๋ฅผ ํ์ ์ผ๋ก ์์ฑํ๊ณ ๊ด๋ฆฌํ ์ ์์ต๋๋ค.
- ์ฝ๋๋ก ๊ด๋ฆฌํ๋ ๋ฌธ์(Docs as Code) ๋๊ตฌ: Asciidoctor ๋ฐ Markdown๊ณผ ๊ฐ์ ๋๊ตฌ๋ ์ ํ๋ฆฌ์ผ์ด์ ์ฝ๋์ ํจ๊ป ์ ์ฅ๋๋ ์ฝ๋๋ก ๋ฌธ์๋ฅผ ์์ฑํ๋ ๋ฐ ์ฌ์ฉ๋ฉ๋๋ค.
ํ์ ๊ฐ์ฅ ์ ํฉํ ๋๊ตฌ๋ ํน์ ์๊ตฌ์ฌํญ์ ๋ฐ๋ผ ๋ฌ๋ผ์ง๋๋ค. ์๋ฅผ ๋ค์ด, REST API๋ฅผ ๊ฐ๋ฐํ๋ ๊ฒฝ์ฐ Swagger/OpenAPI๊ฐ ์์ฐ์ค๋ฌ์ด ์ ํ์ ๋๋ค. BDD๋ฅผ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ Cucumber ๋๋ SpecFlow๋ฅผ ์ฌ์ฉํ์ฌ ๋ช ์ธ์์ ์ด์์๋ ๋ฌธ์๋ฅผ ์์ฑํ ์ ์์ต๋๋ค.
2. ๋ฌธ์๋ฅผ ๊ฐ๋ฐ ์ํฌํ๋ก์ฐ์ ํตํฉ
๋ฌธ์๋ ๋์ค์ ์๊ฐํ ๊ฒ์ด ์๋๋ผ ๊ฐ๋ฐ ์ํฌํ๋ก์ฐ์ ํ์์ ์ธ ๋ถ๋ถ์ด์ด์ผ ํฉ๋๋ค. ์ด๋ ๋ฌธ์ํ ์์ ์ ์คํ๋ฆฐํธ ๊ณํ์ ํฌํจ์ํค๊ณ '์๋ฃ์ ์ ์(Definition of Done)'์ ์ผ๋ถ๋ก ๋ง๋๋ ๊ฒ์ ์๋ฏธํฉ๋๋ค.
์๋ฅผ ๋ค์ด, ๋ชจ๋ ์ ์ฝ๋๋ ๋ฉ์ธ ๋ธ๋์น์ ๋ณํฉ๋๊ธฐ ์ ์ ๋ฌธ์๊ฐ ๋๋ฐ๋์ด์ผ ํ๋ค๊ณ ์๊ตฌํ ์ ์์ต๋๋ค. ๋ํ ์ฝ๋ ๊ฒํ ํ๋ก์ธ์ค์ ๋ฌธ์ํ ์์ ์ ํฌํจํ ์๋ ์์ต๋๋ค.
3. ๋ฌธ์ ์์ฑ ์๋ํ
์๋ํ๋ ๋ฌธ์๋ฅผ ์ต์ ์ํ๋ก ์ ์งํ๋ ๋ฐ ํต์ฌ์ ๋๋ค. ๋ฌธ์ ์์ฑ๊ธฐ๋ฅผ ์ฌ์ฉํ์ฌ ์ฝ๋ ์ฃผ์ ๋ฐ ๊ธฐํ ์์ค์์ ๋ฌธ์๋ฅผ ์๋์ผ๋ก ์์ฑํ์ธ์. ์ด๋ฌํ ๋๊ตฌ๋ฅผ CI/CD ํ์ดํ๋ผ์ธ์ ํตํฉํ์ฌ ์ฝ๋๊ฐ ๋ณ๊ฒฝ๋ ๋๋ง๋ค ๋ฌธ์๊ฐ ์๋์ผ๋ก ์ ๋ฐ์ดํธ๋๋๋ก ํ์ธ์.
์: Python์์ Sphinx ์ฌ์ฉ. Python ์ฝ๋์ docstring์ ์ฌ์ฉํ ๋ค์ Sphinx๋ฅผ ์ฌ์ฉํ์ฌ ํด๋น docstring์์ HTML ๋ฌธ์๋ฅผ ์๋์ผ๋ก ์์ฑํ ์ ์์ต๋๋ค. ๊ทธ๋ฐ ๋ค์ ๋ฌธ์๋ฅผ ์น ์๋ฒ์ ๋ฐฐํฌํ์ฌ ์ฝ๊ฒ ์ ๊ทผํ ์ ์์ต๋๋ค.
4. ํ์ ๋ฐ ํผ๋๋ฐฑ ์ฅ๋ ค
๋ฌธ์๋ ํ์ ์ ๊ฒฐ๊ณผ๋ฌผ์ด์ด์ผ ํฉ๋๋ค. ํ์๋ค์ด ๋ฌธ์์ ๊ธฐ์ฌํ๊ณ ํผ๋๋ฐฑ์ ์ ๊ณตํ๋๋ก ์ฅ๋ คํ์ธ์. ์ฝ๋ ๊ฒํ ๋ฅผ ์ฌ์ฉํ์ฌ ๋ฌธ์๊ฐ ์ ํํ๊ณ ์์ ํ์ง ํ์ธํ์ธ์.
ํ์๋ค์ด ๋ฌธ์์ ์ฝ๊ฒ ๊ธฐ์ฌํ ์ ์๋๋ก ์ํค ์์คํ ์ด๋ ๋ค๋ฅธ ํ์ ํ๋ซํผ ์ฌ์ฉ์ ๊ณ ๋ คํ์ธ์. ๋ชจ๋ ์ฌ๋์ด ๋ฌธ์์ ์ ๊ทผํ ์ ์๊ณ ๊ธฐ์ฌํ๋๋ก ์ฅ๋ ค๋๋์ง ํ์ธํ์ธ์.
5. ๋ฌธ์ ์ ๊ทผ์ฑ ํ๋ณด
๋ฌธ์๋ ๋ชจ๋ ํ ๊ตฌ์ฑ์๊ณผ ์ดํด๊ด๊ณ์๊ฐ ์ฝ๊ฒ ์ ๊ทผํ ์ ์์ด์ผ ํฉ๋๋ค. ์ฝ๊ฒ ์ ๊ทผํ ์ ์๋ ์น ์๋ฒ๋ ์ธํธ๋ผ๋ท์ ๋ฌธ์๋ฅผ ํธ์คํ ํ์ธ์. ๋ฌธ์๊ฐ ์ ์ ๋ฆฌ๋์ด ์๊ณ ํ์ํ๊ธฐ ์ฌ์ด์ง ํ์ธํ์ธ์.
์ฌ์ฉ์๊ฐ ํ์ํ ์ ๋ณด๋ฅผ ์ฝ๊ฒ ์ฐพ์ ์ ์๋๋ก ๊ฒ์ ์์ง ์ฌ์ฉ์ ๊ณ ๋ คํ์ธ์. ๋ชจ๋ ๋ฌธ์ ๋ฆฌ์์ค์ ๋ํ ์ค์ ์ ๊ทผ ์ง์ ์ ์ ๊ณตํ๋ ๋ฌธ์ ํฌํธ์ ๋ง๋ค ์๋ ์์ต๋๋ค.
6. ๋ฌธ์ ํ ์คํธ
์ฝ๋์ ๋ง์ฐฌ๊ฐ์ง๋ก ๋ฌธ์๋ ํ ์คํธํด์ผ ํฉ๋๋ค. ์ด๋ ๋ฌธ์๊ฐ ์ ํํ๊ณ ์์ ํ๋ฉฐ ์ดํดํ๊ธฐ ์ฌ์ด์ง ํ์ธํ๋ ๊ฒ์ ์๋ฏธํฉ๋๋ค. ๋ค์์ ํฌํจํ์ฌ ๋ฌธ์๋ฅผ ํ ์คํธํ๋ ๋ค์ํ ๊ธฐ์ ์ ์ฌ์ฉํ ์ ์์ต๋๋ค:
- ์ฝ๋ ๊ฒํ : ํ์๋ค์ด ๋ฌธ์๋ฅผ ๊ฒํ ํ์ฌ ์ ํํ๊ณ ์์ ํ์ง ํ์ธํ๋๋ก ํฉ๋๋ค.
- ์ฌ์ฉ์ ํ ์คํธ: ์ฌ์ฉ์๊ฐ ํ์ํ ์ ๋ณด๋ฅผ ์ฝ๊ฒ ์ฐพ์ ์ ์๋์ง ํ์ธํ๊ธฐ ์ํด ๋ฌธ์๋ฅผ ํ ์คํธํ๋๋ก ํฉ๋๋ค.
- ์๋ํ๋ ํ ์คํธ: ์๋ํ๋ ํ ์คํธ๋ฅผ ์ฌ์ฉํ์ฌ ๋ฌธ์๊ฐ ์ต์ ์ํ์ด๊ณ ์ฝ๋์ ์ผ์นํ๋์ง ํ์ธํฉ๋๋ค. ์๋ฅผ ๋ค์ด, ๋๊ตฌ๋ฅผ ์ฌ์ฉํ์ฌ ๋ฌธ์์ ๋ชจ๋ ๋งํฌ๊ฐ ์ ํจํ์ง ํ์ธํ ์ ์์ต๋๋ค.
7. ์ฝ๋๋ก ๊ด๋ฆฌํ๋ ๋ฌธ์(Docs as Code) ์์ฉ
๋ฌธ์๋ฅผ ์ฝ๋๋ฒ ์ด์ค์ ํจ๊ป ๋ฒ์ ๊ด๋ฆฌ์ ์ ์ฅํ์ฌ ์ฝ๋๋ก ์ทจ๊ธํ์ธ์. ์ด๋ฅผ ํตํด ๋ฌธ์ ๋ณ๊ฒฝ ์ฌํญ์ ์ถ์ ํ๊ณ ์ด์ ๋ฒ์ ์ผ๋ก ๋๋๋ฆฌ๋ฉฐ, ์ฝ๋์์ ํ์ ํ๋ ๊ฒ๊ณผ ๋์ผํ ๋ฐฉ์์ผ๋ก ๋ฌธ์์์ ํ์ ํ ์ ์์ต๋๋ค. ์ด๋ ๋ํ ๋ฌธ์์ ์๋ํ๋ ํ ์คํธ ๋ฐ ๋ฐฐํฌ๋ฅผ ์ฉ์ดํ๊ฒ ํฉ๋๋ค.
Markdown ๋๋ Asciidoctor์ ๊ฐ์ ๋๊ตฌ๋ฅผ ์ฌ์ฉํ๋ฉด ์ฝ๊ณ ํธ์งํ๊ธฐ ์ฌ์ด ์ผ๋ฐ ํ ์คํธ ํ์์ผ๋ก ๋ฌธ์๋ฅผ ์์ฑํ ์ ์์ต๋๋ค. ๊ทธ๋ฐ ๋ค์ ์ด๋ฌํ ๋๊ตฌ๋ฅผ ์ฌ์ฉํ์ฌ ์ผ๋ฐ ํ ์คํธ ์์ค์์ HTML ๋๋ PDF ๋ฌธ์๋ฅผ ์์ฑํ ์ ์์ต๋๋ค.
์ค์ ์ด์์๋ ๋ฌธ์์ ์์
๋ค์์ ์ด์์๋ ๋ฌธ์๊ฐ ์ค์ ๋ก ์ด๋ป๊ฒ ์ฌ์ฉ๋ ์ ์๋์ง์ ๋ํ ๋ช ๊ฐ์ง ์์ ๋๋ค:
- API ๋ฌธ์: ์ฝ๋ ์ฃผ์์ด๋ Swagger/OpenAPI ๋ช ์ธ์์ API ๋ฌธ์๋ฅผ ์๋์ผ๋ก ์์ฑํฉ๋๋ค. ์ด๋ฅผ ํตํด ๋ฌธ์๊ฐ ํญ์ ์ต์ ์ํ์ด๊ณ ์ ํํ๋ค๋ ๊ฒ์ ๋ณด์ฅํฉ๋๋ค. Stripe ๋ฐ Twilio์ ๊ฐ์ ํ์ฌ๋ ํ๋ฅญํ API ๋ฌธ์๋ก ์ ์๋ ค์ ธ ์์ต๋๋ค.
- ์ํคํ ์ฒ ๋ฌธ์: C4 ๋ชจ๋ธ๊ณผ ๊ฐ์ ๋๊ตฌ๋ฅผ ์ฌ์ฉํ์ฌ ์์คํ ์ํคํ ์ฒ๋ฅผ ์ค๋ช ํ๋ ๋ค์ด์ด๊ทธ๋จ๊ณผ ๋ฌธ์๋ฅผ ๋ง๋ญ๋๋ค. ๋ค์ด์ด๊ทธ๋จ๊ณผ ๋ฌธ์๋ฅผ ์ฝ๋์ ํจ๊ป ๋ฒ์ ๊ด๋ฆฌ์ ์ ์ฅํฉ๋๋ค. ์ด๋ ์์คํ ์ํคํ ์ฒ์ ๋ํ ๋ช ํํ๊ณ ์ต์ ๋ทฐ๋ฅผ ์ ๊ณตํฉ๋๋ค.
- ์๊ตฌ์ฌํญ ๋ฌธ์: BDD ๋๊ตฌ๋ฅผ ์ฌ์ฉํ์ฌ ์์คํ ์๊ตฌ์ฌํญ์ ๋ํ ์ด์์๋ ๋ฌธ์ ์ญํ ์ ํ๋ ์คํ ๊ฐ๋ฅํ ๋ช ์ธ๋ฅผ ์์ฑํฉ๋๋ค. ์ด๋ฅผ ํตํด ์๊ตฌ์ฌํญ์ ํ ์คํธํ ์ ์๊ณ ์์คํ ์ด ํด๋น ์๊ตฌ์ฌํญ์ ์ถฉ์กฑํ๋์ง ํ์ธํ ์ ์์ต๋๋ค. ์๋ฅผ ๋ค์ด, ๊ธ๋ก๋ฒ ์ ์ ์๊ฑฐ๋ ํ์ฌ๋ Cucumber๋ฅผ ์ฌ์ฉํ์ฌ ์ฌ๋ฌ ์ง์ญ์ ๋ํ ์ฌ์ฉ์ ์คํ ๋ฆฌ๋ฅผ ์ ์ํ๊ณ ๋ฌธ์ํํ์ฌ ์ํํธ์จ์ด๊ฐ ๊ฐ ์์ฅ์ ํน์ ์๊ตฌ๋ฅผ ์ถฉ์กฑํ๋๋ก ๋ณด์ฅํ ์ ์์ต๋๋ค.
- ๊ธฐ์ ์ค๊ณ ๋ฌธ์: Markdown ๋๋ Asciidoctor๋ฅผ ์ฌ์ฉํ์ฌ ํน์ ๊ธฐ๋ฅ์ด๋ ๊ตฌ์ฑ ์์์ ์ค๊ณ๋ฅผ ์ค๋ช ํ๋ ๊ธฐ์ ์ค๊ณ ๋ฌธ์๋ฅผ ์์ฑํฉ๋๋ค. ๋ฌธ์๋ฅผ ์ฝ๋์ ํจ๊ป ๋ฒ์ ๊ด๋ฆฌ์ ์ ์ฅํฉ๋๋ค.
์ด์์๋ ๋ฌธ์์ ๊ณผ์
์ด์์๋ ๋ฌธ์๋ ์๋ง์ ์ด์ ์ ์ ๊ณตํ์ง๋ง ๋ช ๊ฐ์ง ๊ณผ์ ๋ ์ ์ํฉ๋๋ค:
- ์ด๊ธฐ ํฌ์: ์ด์์๋ ๋ฌธ์๋ฅผ ๊ตฌํํ๋ ค๋ฉด ๋๊ตฌ, ๊ต์ก ๋ฐ ํ๋ก์ธ์ค ๋ณ๊ฒฝ์ ๋ํ ์ด๊ธฐ ํฌ์๊ฐ ํ์ํฉ๋๋ค.
- ์ ์ง๋ณด์ ๋ถ๋ด: ๋ฌธ์๋ฅผ ์ต์ ์ํ๋ก ์ ์งํ๋ ค๋ฉด ์ง์์ ์ธ ๋ ธ๋ ฅ๊ณผ ํ์ ์ด ํ์ํฉ๋๋ค.
- ๋ฌธํ์ ๋ณํ: ์ด์์๋ ๋ฌธ์๋ฅผ ์ฑํํ๋ ค๋ฉด ๊ฐ๋ฐํ ๋ด ๋ฌธํ์ ๋ณํ๊ฐ ํ์ํฉ๋๋ค. ํ์ ๋ฌธ์๋ฅผ ๊ฐ๋ฐ ํ๋ก์ธ์ค์ ํ์์ ์ธ ๋ถ๋ถ์ผ๋ก ๋ฐ์๋ค์ฌ์ผ ํฉ๋๋ค.
- ๋๊ตฌ์ ๋ณต์ก์ฑ: ์ฌ๋ฐ๋ฅธ ๋๊ตฌ๋ฅผ ์ ํํ๊ณ ๊ตฌ์ฑํ๋ ๊ฒ์ ํนํ ํฌ๊ณ ๋ณต์กํ ํ๋ก์ ํธ์ ๊ฒฝ์ฐ ๋ณต์กํ ์ ์์ต๋๋ค.
์ด๋ฌํ ๊ณผ์ ์๋ ๋ถ๊ตฌํ๊ณ , ์ด์์๋ ๋ฌธ์์ ์ด์ ์ ๋น์ฉ์ ํจ์ฌ ๋ฅ๊ฐํฉ๋๋ค. ์ด์์๋ ๋ฌธ์๋ฅผ ์์ฉํจ์ผ๋ก์จ ํ์ ์ปค๋ฎค๋์ผ์ด์ , ํ์ ๋ฐ ์ ์ง๋ณด์์ฑ์ ๊ฐ์ ํ์ฌ ๋ ๋์ ํ์ง์ ์ํํธ์จ์ด์ ๋ ๋น ๋ฅธ ๋ฐฐํฌ ์ฃผ๊ธฐ๋ฅผ ์ด๋์ด๋ผ ์ ์์ต๋๋ค.
์ด์์๋ ๋ฌธ์๋ฅผ ์ํ ๋ชจ๋ฒ ์ฌ๋ก
์ด์์๋ ๋ฌธ์์ ์ด์ ์ ๊ทน๋ํํ๋ ค๋ฉด ๋ค์ ๋ชจ๋ฒ ์ฌ๋ก๋ฅผ ๊ณ ๋ คํ์ธ์:
- ์๊ฒ ์์ํ๊ธฐ: ํ์ผ๋ฟ ํ๋ก์ ํธ๋ก ์์ํ์ฌ ์ํํด๋ณด๊ณ ์ด์์๋ ๋ฌธ์์ ๋ํ ๊ฒฝํ์ ์์ผ์ธ์.
- ์ฌ๋ฐ๋ฅธ ๋๊ตฌ ์ ํ: ํน์ ์๊ตฌ์ฌํญ์ ์ ํฉํ ๋๊ตฌ๋ฅผ ์ ํํ์ธ์.
- ๋ชจ๋ ๊ฒ์ ์๋ํํ๊ธฐ: ๋ฌธ์ ์์ฑ ๋ฐ ์ ๋ฐ์ดํธ๋ฅผ ์ต๋ํ ์๋ํํ์ธ์.
- ๋ชจ๋๋ฅผ ์ฐธ์ฌ์ํค๊ธฐ: ๋ชจ๋ ํ์์ด ๋ฌธ์์ ๊ธฐ์ฌํ๊ณ ํผ๋๋ฐฑ์ ์ ๊ณตํ๋๋ก ์ฅ๋ คํ์ธ์.
- ๊ฐ์์ฑ ํ๋ณดํ๊ธฐ: ๋ชจ๋ ํ ๊ตฌ์ฑ์๊ณผ ์ดํด๊ด๊ณ์๊ฐ ๋ฌธ์์ ์ฝ๊ฒ ์ ๊ทผํ ์ ์๋๋ก ํ์ธ์.
- ์ง์์ ์ผ๋ก ๊ฐ์ ํ๊ธฐ: ๋ฌธ์ํ ํ๋ก์ธ์ค๋ฅผ ์ ๊ธฐ์ ์ผ๋ก ๊ฒํ ํ๊ณ ๊ฐ์ ํ์ธ์.
- ๋ฌธ์ํ ๋ฌธํ ์ฅ๋ คํ๊ธฐ: ๋ฌธ์๊ฐ ๊ฐ์น ์๊ณ ๊ฐ๋ฐ ํ๋ก์ธ์ค์ ํ์์ ์ธ ๋ถ๋ถ์ผ๋ก ์ฌ๊ฒจ์ง๋ ๋ฌธํ๋ฅผ ์กฐ์ฑํ์ธ์.
์ด์์๋ ๋ฌธ์์ ๊ธ๋ก๋ฒ ํ
์ด์์๋ ๋ฌธ์๋ ํนํ ๊ธ๋ก๋ฒ ํ์๊ฒ ๊ฐ์น๊ฐ ์์ต๋๋ค. ์ด๋ ์ปค๋ฎค๋์ผ์ด์ ๊ฒฉ์ฐจ๋ฅผ ํด์ํ๊ณ ์์น๋ ์๊ฐ๋์ ๊ด๊ณ์์ด ๋ชจ๋ ์ฌ๋์ด ๋์ผํ ์ ๋ณด๋ฅผ ๊ณต์ ํ๋๋ก ๋ณด์ฅํฉ๋๋ค.
๋ค์์ ์ด์์๋ ๋ฌธ์๊ฐ ๊ธ๋ก๋ฒ ํ์ ๋์์ด ๋ ์ ์๋ ๋ช ๊ฐ์ง ๊ตฌ์ฒด์ ์ธ ๋ฐฉ๋ฒ์ ๋๋ค:
- ๊ฐ์ ๋ ์ปค๋ฎค๋์ผ์ด์ : ์์คํ ์ ๋ํ ๊ณตํต๋ ์ดํด๋ฅผ ์ ๊ณตํ์ฌ ์คํด์ ์ค๋ฅ์ ์ํ์ ์ค์ ๋๋ค.
- ์ฌ์์ ๊ฐ์: ์คํด๋ ์ค๋๋ ์ ๋ณด๋ก ์ธํ ์ฌ์์ ์ ๋ฐฉ์งํฉ๋๋ค.
- ๋ ๋น ๋ฅธ ์จ๋ณด๋ฉ: ์๋ก์ด ํ์์ด ์์คํ ๊ณผ ์ํคํ ์ฒ๋ฅผ ๋น ๋ฅด๊ฒ ์ดํดํ๋๋ก ๋์ ์์ฐ์ฑ์ ๋์ด๋ ๋ฐ ๊ฑธ๋ฆฌ๋ ์๊ฐ์ ๋จ์ถํฉ๋๋ค.
- ํ์ ์ฆ์ง: ์๊ฐ๋์ ๋ฌธํ๋ฅผ ๋์ด์ ํ์ ์ ์ด์งํฉ๋๋ค.
- ํฅ์๋ ์ง์ ๊ณต์ : ํ ์ ์ฒด์ ์ง์์ด ๊ณต์ ๋๋๋ก ๋ณด์ฅํ์ฌ ๊ฐ๋ณ ์ ๋ฌธ๊ฐ์ ๋ํ ์์กด๋๋ฅผ ์ค์ ๋๋ค.
๊ธ๋ก๋ฒ ํ๊ณผ ํ๋ ฅํ ๋๋ ๋ค์ ์ฌํญ์ ๊ณ ๋ คํ๋ ๊ฒ์ด ์ค์ํฉ๋๋ค:
- ์ธ์ด: ๋น์์ด๋ฏผ์ด ์ดํดํ๊ธฐ ์ฌ์ด ๋ช ํํ๊ณ ๊ฐ๊ฒฐํ ์ธ์ด๋ฅผ ์ฌ์ฉํ์ธ์. ์ฃผ์ ๋ฌธ์์ ๋ฒ์ญ๋ณธ ์ ๊ณต์ ๊ณ ๋ คํ์ธ์.
- ์ ๊ทผ์ฑ: ์์น๋ ์ธํฐ๋ท ๋์ญํญ์ ๊ด๊ณ์์ด ๋ชจ๋ ํ์์ด ๋ฌธ์์ ์ ๊ทผํ ์ ์๋๋ก ๋ณด์ฅํ์ธ์.
- ๋ฌธํ: ์ปค๋ฎค๋์ผ์ด์ ๊ณผ ํ์ ์ ์ํฅ์ ์ค ์ ์๋ ๋ฌธํ์ ์ฐจ์ด๋ฅผ ์ธ์งํ์ธ์.
- ์๊ฐ๋: ์ฌ๋ฌ ์๊ฐ๋์ ๊ฑธ์ณ ๋ฌธ์ํ ๋ ธ๋ ฅ์ ์กฐ์ ํ์ธ์.
๊ฒฐ๋ก
์ด์์๋ ๋ฌธ์๋ ํ๋ ์ ์์ผ ์ํํธ์จ์ด ๊ฐ๋ฐํ, ํนํ ์ ์ธ๊ณ์ ์ผ๋ก ์ด์๋๋ ํ์๊ฒ ํ์์ ์ธ ๊ดํ์ ๋๋ค. ์๋ํ, ํตํฉ, ํ์ ๋ฐ ์ ๊ทผ์ฑ ์์น์ ์์ฉํจ์ผ๋ก์จ ํ์ ๋ชจ๋ ์ดํด๊ด๊ณ์์๊ฒ ์ ํํ๊ณ ์ต์ ์ด๋ฉฐ ๊ฐ์น ์๋ ๋ฌธ์๋ฅผ ๋ง๋ค ์ ์์ต๋๋ค. ๊ทน๋ณตํด์ผ ํ ๊ณผ์ ๊ฐ ์์ง๋ง, ๊ฐ์ ๋ ์ปค๋ฎค๋์ผ์ด์ , ํ์ , ์ ์ง๋ณด์์ฑ, ์ง์ ๊ณต์ ์ ๊ฐ์ ์ด์์๋ ๋ฌธ์์ ์ด์ ์ ๋น์ฉ์ ํจ์ฌ ๋ฅ๊ฐํฉ๋๋ค. ์ํํธ์จ์ด ๊ฐ๋ฐ์ด ๊ณ์ ์งํํจ์ ๋ฐ๋ผ, ์ด์์๋ ๋ฌธ์๋ ์ ์ธ๊ณ ์ํํธ์จ์ด ํ๋ก์ ํธ์ ์ฑ๊ณต์ ์ ์ ๋ ์ค์ํ ์์๊ฐ ๋ ๊ฒ์ ๋๋ค. ์ด์์๋ ๋ฌธ์ ๊ดํ์ ์ฑํํจ์ผ๋ก์จ ํ์ ๋ ๋์ ์ํํธ์จ์ด๋ฅผ ๋ ๋น ๋ฅด๊ณ ํจ๊ณผ์ ์ผ๋ก ๊ตฌ์ถํ์ฌ ๊ถ๊ทน์ ์ผ๋ก ๊ณ ๊ฐ์๊ฒ ๋ ํฐ ๊ฐ์น๋ฅผ ์ ๊ณตํ ์ ์์ต๋๋ค.